package com.gpframework.module.common.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @ClassName CommonWxUserVo
 * @Author gpframework
 * @Date 2022-04-07
 * @Version 1.0.0
 * @Description 微信用户Vo对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class TemporaryVisitVo {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long wxUserId;

    /**
     * 品牌id
     */
    @Excel(name = "品牌id")
    @ApiModelProperty("品牌id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long brandId;

    /**
     * 会员类型：member、员工：employee
     */
    @Excel(name = "会员类型")
    @ApiModelProperty("会员类型")
    private String wxType;

    /**
     * 品牌名称
     */
    @Excel(name = "品牌名称")
    @ApiModelProperty("品牌名称")
    private String brandName;

    /**
     * 门店id
     */
    @Excel(name = "门店id")
    @ApiModelProperty("门店id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long storeId;

    /**
     * 店铺id
     */
    @Excel(name = "店铺id")
    @ApiModelProperty("店铺id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long lastStoreId;

    /**
     * 系统用户id
     */
    @Excel(name = "系统用户id")
    @ApiModelProperty("系统用户id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long brandUserId;

    /**
     * 微信小程序openid
     */
    @Excel(name = "微信小程序openid")
    @ApiModelProperty("微信小程序openid")
    private String wxAppletOpenid;

    /**
     * 微信公众号openid
     */
    @Excel(name = "微信公众号openid")
    @ApiModelProperty("微信公众号openid")
    private String wxPublicOpenid;

    /**
     * 微信unionId
     */
    @Excel(name = "微信unionId")
    @ApiModelProperty("微信unionId")
    private String unionId;

    /**
     * 微信号
     */
    @Excel(name = "微信号")
    @ApiModelProperty("微信号")
    private String wechatCode;

    /**
     * 用户编号;员工工号
     */
    @Excel(name = "用户编号;员工工号")
    @ApiModelProperty("用户编号;员工工号")
    private String userCode;

    /**
     * 昵称
     */
    @Excel(name = "昵称")
    @ApiModelProperty("昵称")
    private String nickname;

    /**
     * 真实名称
     */
    @Excel(name = "真实名称")
    @ApiModelProperty("真实名称")
    private String userName;

    /**
     * 性别
     */
    @Excel(name = "性别")
    @ApiModelProperty("性别")
    private String sex;

    /**
     * 头像url
     */
    @Excel(name = "头像url")
    @ApiModelProperty("头像url")
    private String headImage;

    /**
     * 区域id
     */
    @Excel(name = "区域id")
    @ApiModelProperty("区域id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long areaId;

    /**
     * 详细住址
     */
    @Excel(name = "详细住址")
    @ApiModelProperty("详细住址")
    private String address;

    /**
     * 微信号
     */
    @Excel(name = "微信号")
    @ApiModelProperty("微信号")
    private String wxCode;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    @ApiModelProperty("身份证号")
    private String idNumber;

    /**
     * 生日
     */
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("生日")
    private Date birthday;

    /**
     * 邮箱
     */
    @Excel(name = "邮箱")
    @ApiModelProperty("邮箱")
    private String email;

    /**
     * 简介
     */
    @Excel(name = "简介")
    @ApiModelProperty("简介")
    private String synopsis;

    /**
     * 公司区域id
     */
    @Excel(name = "公司区域id")
    @ApiModelProperty("公司区域id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long companyAreaId;

    /**
     * 公司详细地址
     */
    @Excel(name = "公司详细地址")
    @ApiModelProperty("公司详细地址")
    private String companyAddress;

    /**
     * 婚姻情况
     */
    @Excel(name = "婚姻情况")
    @ApiModelProperty("婚姻情况")
    private String marriageCondition;

    /**
     * 子女情况
     */
    @Excel(name = "子女情况")
    @ApiModelProperty("子女情况")
    private String childrenCondition;

    /**
     * 录入人id
     */
    @Excel(name = "录入人id")
    @ApiModelProperty("录入人id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long inputUserId;

    /**
     * 录入人名称
     */
    @Excel(name = "录入人名称")
    @ApiModelProperty("录入人名称")
    private String inputUserName;

    /**
     * 状态;有效、无效、冻结、删除
     */
    @Excel(name = "状态;有效、无效、冻结、删除")
    @ApiModelProperty("状态;有效、无效、冻结、删除")
    private String status;

    /**
     * 是否进小程序默认打开二维码
     */
    @ApiModelProperty("是否进小程序默认打开二维码")
    private String defaultOpenQrcode;

    /**
     * 排序
     */
    @Excel(name = "排序")
    @ApiModelProperty("排序")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long sort;

    /**
     * 备注
     */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remarks;

    /**
     * 创建者
     */
    @ApiModelProperty("创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新者
     */
    @ApiModelProperty("更新者")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 微信code
     */
    @ApiModelProperty(value = "微信code")
    private String js_code;

    /**
     * 登录后token
     */
    @ApiModelProperty("登录后token")
    private String loginToken;

    /**
     * 会员类型; 1潜在会员、2正式会员 30过期会员
     */
    @ApiModelProperty("会员类型; 10潜在会员、20正式会员 30过期会员")
    private String memberType;

    /**
     * 储值金额
     */
    @ApiModelProperty("储值金额")
    private BigDecimal storedMoney;

    /**
     * 现有积分
     */
    @ApiModelProperty("现有积分")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long integralExisting;


    /**
     * 课程总节数
     */
    private int courseTotalNum;
    /**
     * 课程核销数
     */
    private int courseVerificationNum;

    @ApiModelProperty("会籍保护剩余时间")
    private String potentialOverdue;
    @ApiModelProperty("跟进次数")
    private String followNum;
    @ApiModelProperty("会籍销售员id")
    private Long salesmanId;
    @ApiModelProperty("会籍销售员名称")
    private String salesmanName;
    @ApiModelProperty("分配日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date distributionDate;
    @ApiModelProperty("会员卡号")
    private String cardCode;
    @ApiModelProperty("会员卡名")
    private String cardName;
    @ApiModelProperty("次卡有效使用次数")
    private String cardEffQuantity;
    @ApiModelProperty("剩余有效时间")
    private String cardEffTime;
    @ApiModelProperty("保护天数")
    private Long protectDay;
    @ApiModelProperty("保护开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date protectStartDate;
    @ApiModelProperty("最后跟进员名称")
    private String newestSalesmanName;
    @ApiModelProperty("最后跟进时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date newestSalesmanFollowTime;
}
